package com.enjoyor.soa.traffic.api.service.dubbo.redis;

import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

//@Service(protocol = { "dubbo" })
public interface DubboRedisKeyService {
	/**
	 * 
	
	 * @Title: del
	
	 * @Description: 删除
	
	 * @param key
	
	 * @return: void
	 */
	public ResultPojo del(String key);
	/**
	 * 
	
	 * @Title: del
	
	 * @Description: 删除
	
	 * @param key
	
	 * @return: void
	 */
	public ResultPojo delKeys(String[] keys);
	/**
	 * 
	
	 * @Title: dump
	
	 * @Description: 序列化键值
	
	 * @param key
	 * @return
	
	 * @return: String
	 */
	public ResultPojo dump(String key);
	/**
	 * 
	
	 * @Title: exists
	
	 * @Description: 是否存在键值
	
	 * @param key
	 * @return
	
	 * @return: boolean
	 */
	public ResultPojo exists(String key);
	/**
	 * 
	
	 * @Title: expire
	
	 * @Description: 给键值设置过期时间
	
	 * @param key
	 * @param seconds
	
	 * @return: void
	 */
	public ResultPojo expire(String key,long seconds);
	/**
	 * 
	
	 * @Title: expireat
	
	 * @Description: 给键值设置过期时间
	
	 * @param key
	 * @param time
	
	 * @return: void
	 */
	public ResultPojo expireat(String key,String time);
	/**
	 * 
	
	 * @Title: keys
	
	 * @Description: 查找所有符合给定模式( pattern)的 key 
	
	 * @param key
	 * @return
	
	 * @return: List<String>
	 */
	public ResultPojo keys(String key);
	/**
	 * 
	
	 * @Title: persist
	
	 * @Description: 移除 key 的过期时间，key 将持久保持。
	
	 * @param key
	
	 * @return: void
	 */
	public ResultPojo persist(String key);
	/**
	 * 
	
	 * @Title: ttl
	
	 * @Description: 以秒为单位，返回给定 key 的剩余生存时间(TTL, time to live)。
	
	 * @param key
	 * @return
	
	 * @return: long
	 */
	public ResultPojo ttl(String key);
	/**
	 * 
	
	 * @Title: rename
	
	 * @Description: 修改 key 的名称
	
	 * @param key
	 * @param newkey
	
	 * @return: void
	 */
	public ResultPojo rename(String key,String newkey);
	/**
	 * 
	
	 * @Title: type
	
	 * @Description: 返回 key 所储存的值的类型
	
	 * @param key
	
	 * @return: void
	 */
	public ResultPojo type(String key);
	/**
	 * 
	
	 * @Title: set
	
	 * @Description: 设置指定 key 的值
	
	 * @param key
	 * @param value
	
	 * @return: void
	 */
	public ResultPojo set(String key,String value);
	/**
	 * 
	
	 * @Title: get
	
	 * @Description: 获取指定 key 的值。
	
	 * @param key
	 * @return
	
	 * @return: String
	 */
	public ResultPojo get(String key);
	/**
	 * 
	 * @Title: getset
	 * @Description: 将给定 key 的值设为 value ，并返回 key 的旧值(old value)。
	 * 
	 * @param key
	 * @param value
	 * @return
	
	 * @return: String
	 */
	public ResultPojo getset(String key,String value);
	/**
	 * @Title: mget
	 * @Description: 获取所有(一个或多个)给定 key 的值。
	 * @param keys
	 * @return
	 * @return: String[]
	 */
	public ResultPojo mget(String[] keys);
	/**
	 * @Title: incr
	 * @Description: 将 key 中储存的数字值增一。
	 * @param key
	 * @return
	 * @return: int
	 */
	public ResultPojo incr(String key);
	/**
	 * @Title: decr
	 * @Description: 将 key 中储存的数字值减一。
	 * @param key
	 * @return
	 * @return: int
	 */
	public ResultPojo decr(String key);
}
